/*
 * 标签工具
 * version : "1.0",
 * auther : "陈 庭",
 *
 * Date: 2010-06-28
 *
 */
(function($) {
	// 插件功能代码
    $.fn.yxTabs = function(options) {
        var opts = $.extend({}, $.fn.yxTabs.defaults, options);
		
        return this.each(function() {
			var tabArea = $(this);
			var divArea = $('#' + opts.tabsDiv);
			var ulArea = $(this).children("ul").eq(0);

			ulArea.children("li").find("a").each(function(){
				if($(this).attr('closeBtn') == 'true'){ // 检查是否有需要有关闭按钮
					if($(this).children('span[seq=' + $(this).attr('href') + ']').length <= 0){ // 判断是否已经添加过关闭按钮
						var s = '';
						if(opts.closeImg != ''){
							s = "<span seq=\"" + $(this).attr('href') + "\">&nbsp;<img src='" + opts.closeImg + "' style='vertical-align:top;border:0;' /></span>"
						}else{
							s = "<span seq=\"" + $(this).attr('href') + "\">&nbsp;[关闭]</span>";
						}
						$(this).append(s);
						$(this).children('span[seq=' + $(this).attr('href') + ']').click(function(){ // 判断关闭事件
							$($(this).attr('seq')).remove();
							$(this).parentsUntil('li:last').parent('li').remove();
							if($(ulArea).children("li." + opts.selectClass).length <= 0){
								$(ulArea).children("li").eq(0).find("a").eq(0).click();
							}
						});
					}
				}
			});
			
			// 点击标签标题事件
			ulArea.children("li").find("a").click(function(e){
					// 判断是否点击关闭按钮，如果是， 则不执行点击事件
					if ((e.srcElement || e.target) == $(this).children("span").get(0)){
						return false;
					}
					// 设置标签标题的点击状态（样式）									   
					ulArea.children("li").each(function(){
						if(!$(this).hasClass(opts.normalClass)){
							$(this).addClass(opts.normalClass);
						}
						if($(this).hasClass(opts.selectClass)){
							$(this).removeClass(opts.selectClass);
						}
					});
					$(this).parentsUntil(ulArea).removeClass(opts.normalClass).addClass(opts.selectClass);
					
					// 隐藏所有内容DIV
					$(divArea).children("div").each(function(){
						$(this).hide();							  
					});
					
					// 显示对应的DIV
					$($(this).attr("href"), divArea).show();

					// 是否加载iframe页面
					if(typeof($(this).attr("iframe")) != "undefined" && $(this).attr("iframe") != ""){
						if(!opts.iframeReload && $("#tabiframe_" + $(this).attr("id"), divArea).length > 0){ // 是否已经加载页面
							//$("#tabiframe", tabArea).remove();
						}else{
							var iframeUrl = $(this).attr("iframe");
							if(iframeUrl.indexOf('?') != -1){
								iframeUrl = iframeUrl + "&jsTimestamp=" + (new Date()).getTime();
							}else{
								iframeUrl = iframeUrl + "?jsTimestamp=" + (new Date()).getTime();
							}
							
							$($(this).attr("href"), divArea).html("<iframe src='"+iframeUrl+"' style='height:100%; width:100%;' scrolling='auto' frameborder='0' id='tabiframe_" + $(this).attr("id") + "'></iframe>");
						}
					}
					
					// 启动点击事件
					try{
						opts.clickEvent(this);
					}catch(e){}
					
					return false;
			});

			// 触发默认标签
			ulArea.children("li").eq(opts.focusTab - 1).find("a").eq(0).click();
        });
    };
	
	$.fn.refreshYxTabs = function(options) {
        var opts = $.extend({}, $.fn.yxTabs.defaults, options);
        return this.each(function() {
			var tabArea = $(this);
			var ulArea = $(this).children("ul").eq(0);

			// 清除点击事件
			$(this).children("ul").eq(0).children("li").find("a").unbind("click");
			
			if(opts.focusNew){ // 是否聚焦到新标签
				opts.focusTab = $(this).children("ul").eq(0).children("li:last").index() + 1;
			}else{
				opts.focusTab = $(this).children("ul").eq(0).children("li." + opts.selectClass).index() + 1;
			}
			
			// 重新设置标签
			$(this).yxTabs(opts);
        });
    };

	// 默认配置参数
    $.fn.yxTabs.defaults = {
		tabsDiv : "tabsDiv", // div 的位置区域
        focusTab : 1,  // 聚集标签顺序号
		clickEvent : function(tab){},  // 回调函数
		selectClass : "selectClass",    // 选中样式
		normalClass : "normalClass",     // 未选中样式
		closeImg : '',                // 关闭按钮的URL
		focusNew : true,              // 当新增标签时是否聚集
		iframeReload : false  // 每次点击TAB时是否刷新页面
    };

})(jQuery);